package co.com.inventarios.vista;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import co.com.inventarios.logica.DlluserLogica;
import co.com.inventarios.logica.IDlluserLogica;
import co.com.inventarios.logica.IMngtdcLogica;
import co.com.inventarios.logica.MngtdcLogica;
import co.com.inventarios.logica.TrasladoLogica;
import co.com.inventarios.modelo.Bodega;
import co.com.inventarios.modelo.Dlluser;
import co.com.inventarios.modelo.DlluserWork;
import co.com.inventarios.modelo.Mngcco;
import co.com.inventarios.modelo.Mngdoc;
import co.com.inventarios.modelo.Mngtdc;
import co.com.inventarios.modelo.Vinculado;
import co.com.inventarios.utils.MessageBundleLoader;
import co.com.inventarios.utils.SessionUtil;
import co.com.inventarios.utils.SessionVars;

import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlInputTextarea;
import com.icesoft.faces.component.ext.HtmlSelectOneMenu;
import com.icesoft.faces.component.ext.RowSelectorEvent;
import com.icesoft.faces.context.effects.JavascriptContext;

public class User_MB {

	// ///// set User_B.jspx Ini
	private String busquedacmbbus;
	private HtmlSelectOneMenu seleconebusqueda;
	private HtmlInputText txtBuscar;
	private String buscar;
	private String ModSerie;
	private boolean modalpopupSerie;
	private List<Mngcco> listseries = new ArrayList<Mngcco>();
	private HtmlCommandButton popup_cmdselecionarSerie;
	private int numseries;
	private Mngcco MiMngmcnsn;
	private boolean userselec = false;
	private boolean busqueda1 = true;
	private boolean busqueda2 = false;
	private boolean busqueda3 = false;
	private boolean busqueda4 = false;
	private boolean selecfecha = false;
	private boolean selecfecha_user = false;
	private Date fechabusca;
	private Bodega miBodegas;
	private HtmlInputText txtfechabusca;
	private boolean modalpopupbodega;
	private String busquedacmbbodega;
	private String bbodegas;
	private String bbodegasnom;
	private DlluserWork[] dlluserw;
	private HtmlCommandButton cmdelimina;
	private HtmlCommandButton cmdedita;
	private HtmlCommandButton cmdnuevo;
	private String buscarbod;
	private HtmlInputText txtBuscarbod;
	private List<Bodega> listaBodegapopup;
	private HtmlCommandButton popup_cmdselecionarBod;
	private boolean modalRendered;
	private int tipopopupbodega;
	private String nombreEliminar;
	private IDlluserLogica Dlluser_logica;
	private List<Dlluser> listUsers;
	private Dlluser UserEdicion = new Dlluser();
	// private Dlluser UserEdicion = new Dlluser();
	// ///// set User_B.jspx Fin

	// ///// set User_P.jspx Ini
	private boolean sweditando = false;
	private boolean swnuevo = false;
	private String bcodigo;
	private HtmlInputText txtbcodigo;
	private String bnombre;
	private HtmlInputText txtnombre;
	private Date bfechamod;
	private HtmlInputText txtfechamod;
	private Date bfechana;
	private HtmlInputText txtfechana;
	private String bperfil;
	private String buscarperfil = "TODOS";
	private HtmlSelectOneMenu selectbuscaperfil;
	private HtmlSelectOneMenu selectperfil;
	private HtmlInputText txtbodegasal;
	private boolean bactivo;
	private boolean modalRenderedContrasena;
	private boolean modalRenderedsalir;
	private String retornar;
	private String bcontrasena;
	private HtmlInputText txtcontrasena;
	private String bbodegas_aut;
	private HtmlInputTextarea txtbodegas_ent;
	private String bbodegas_sal;
	private HtmlInputTextarea txtbodegas_sal;
	private String bdoc_autor;
	private HtmlInputTextarea txtdoc_autor;
	private Dlluser Dlluser_c;
	private Bodega Bodega_c = new Bodega();

	private boolean modalpopuptdc;
	private String buscartdc;
	private HtmlInputText txtbuscartdc;
	private HtmlCommandButton popup_cmdselecionartdc;
	private String busquedacmbtdc;
	private List<Mngtdc> listatdcpopup;
	private IMngtdcLogica Mngtdc_logica;
	private String rutaArchivo;
	private String javaScriptCode = " var applet = document.getElementById('idApplet');"
			+ "applet.loadPrint();";

	// ///// set User_P.jspx Fin

	// ///// Get an Set User_B.jspx Ini
	public Dlluser getUserEdicion() {
		return UserEdicion;
	}

	public Bodega getMiBodegas() {
		return miBodegas;
	}

	public boolean isSelecfecha() {
		return selecfecha;
	}

	public void setSelecfecha(boolean selecfecha) {
		this.selecfecha = selecfecha;
	}

	public void setMiBodegas(Bodega miBodegas) {
		this.miBodegas = miBodegas;
	}

	public void setUserEdicion(Dlluser userEdicion) {
		UserEdicion = userEdicion;
	}

	public String getBuscarperfil() {
		return buscarperfil;
	}

	public void setBuscarperfil(String buscarperfil) {
		this.buscarperfil = buscarperfil;
	}

	public HtmlSelectOneMenu getSelectbuscaperfil() {
		return selectbuscaperfil;
	}

	public void setSelectbuscaperfil(HtmlSelectOneMenu selectbuscaperfil) {
		this.selectbuscaperfil = selectbuscaperfil;
	}

	public boolean isModalpopuptdc() {
		return modalpopuptdc;
	}

	public void setModalpopuptdc(boolean modalpopuptdc) {
		this.modalpopuptdc = modalpopuptdc;
	}

	public String getBuscartdc() {
		return buscartdc;
	}

	public void setBuscartdc(String buscartdc) {
		this.buscartdc = buscartdc;
	}

	public HtmlInputText getTxtbuscartdc() {
		return txtbuscartdc;
	}

	public void setTxtbuscartdc(HtmlInputText txtbuscartdc) {
		this.txtbuscartdc = txtbuscartdc;
	}

	public HtmlCommandButton getPopup_cmdselecionartdc() {
		return popup_cmdselecionartdc;
	}

	public void setPopup_cmdselecionartdc(
			HtmlCommandButton popup_cmdselecionartdc) {
		this.popup_cmdselecionartdc = popup_cmdselecionartdc;
	}

	public String getBusquedacmbtdc() {
		return busquedacmbtdc;
	}

	public void setBusquedacmbtdc(String busquedacmbtdc) {
		this.busquedacmbtdc = busquedacmbtdc;
	}

	public List<Mngtdc> getListatdcpopup() {
		return listatdcpopup;
	}

	public void setListatdcpopup(List<Mngtdc> listatdcpopup) {
		this.listatdcpopup = listatdcpopup;
	}

	public IMngtdcLogica getMngtdc_logica() {
		return Mngtdc_logica;
	}

	public Mngcco getMiMngmcnsn() {
		return MiMngmcnsn;
	}

	public void setMiMngmcnsn(Mngcco miMngmcnsn) {
		MiMngmcnsn = miMngmcnsn;
	}

	public void setMngtdc_logica(IMngtdcLogica mngtdc_logica) {
		Mngtdc_logica = mngtdc_logica;
	}

	public int getTipopopupbodega() {
		return tipopopupbodega;
	}

	public void setTipopopupbodega(int tipopopupbodega) {
		this.tipopopupbodega = tipopopupbodega;
	}

	public String getModSerie() {
		return ModSerie;
	}

	public void setModSerie(String modSerie) {
		ModSerie = modSerie;
	}

	public boolean isUserselec() {
		return userselec;
	}

	public void setUserselec(boolean userselec) {
		this.userselec = userselec;
	}

	public String getBusquedacmbbus() {
		return busquedacmbbus;
	}

	public void setBusquedacmbbus(String busquedacmbbus) {
		this.busquedacmbbus = busquedacmbbus;
	}

	public HtmlSelectOneMenu getSeleconebusqueda() {
		return seleconebusqueda;
	}

	public void setSeleconebusqueda(HtmlSelectOneMenu seleconebusqueda) {
		this.seleconebusqueda = seleconebusqueda;
	}

	public HtmlInputText getTxtBuscar() {
		return txtBuscar;
	}

	public void setTxtBuscar(HtmlInputText txtBuscar) {
		this.txtBuscar = txtBuscar;
	}

	public String getBuscar() {
		return buscar;
	}

	public void setBuscar(String buscar) {
		this.buscar = buscar;
	}

	public boolean isBusqueda1() {
		return busqueda1;
	}

	public void setBusqueda1(boolean busqueda1) {
		this.busqueda1 = busqueda1;
	}

	public boolean isBusqueda2() {
		return busqueda2;
	}

	public void setBusqueda2(boolean busqueda2) {
		this.busqueda2 = busqueda2;
	}

	public boolean isBusqueda3() {
		return busqueda3;
	}

	public void setBusqueda3(boolean busqueda3) {
		this.busqueda3 = busqueda3;
	}

	public boolean isBusqueda4() {
		return busqueda4;
	}

	public void setBusqueda4(boolean busqueda4) {
		this.busqueda4 = busqueda4;
	}

	public Date getFechabusca() {
		return fechabusca;
	}

	public void setFechabusca(Date fechabusca) {
		this.fechabusca = fechabusca;
	}

	public HtmlInputText getTxtfechabusca() {
		return txtfechabusca;
	}

	public void setTxtfechabusca(HtmlInputText txtfechabusca) {
		this.txtfechabusca = txtfechabusca;
	}

	public boolean isModalpopupbodega() {
		return modalpopupbodega;
	}

	public void setModalpopupbodega(boolean modalpopupbodega) {
		this.modalpopupbodega = modalpopupbodega;
	}

	public String getBusquedacmbbodega() {
		return busquedacmbbodega;
	}

	public void setBusquedacmbbodega(String busquedacmbbodega) {
		this.busquedacmbbodega = busquedacmbbodega;
	}

	public String getBbodegas() {
		return bbodegas;
	}

	public void setBbodegas(String bbodegas) {
		this.bbodegas = bbodegas;
	}

	public String getBbodegasnom() {
		return bbodegasnom;
	}

	public void setBbodegasnom(String bbodegasnom) {
		this.bbodegasnom = bbodegasnom;
	}

	public HtmlCommandButton getCmdelimina() {
		return cmdelimina;
	}

	public void setCmdelimina(HtmlCommandButton cmdelimina) {
		this.cmdelimina = cmdelimina;
	}

	public HtmlCommandButton getCmdedita() {
		return cmdedita;
	}

	public void setCmdedita(HtmlCommandButton cmdedita) {
		this.cmdedita = cmdedita;
	}

	public HtmlCommandButton getCmdnuevo() {
		return cmdnuevo;
	}

	public void setCmdnuevo(HtmlCommandButton cmdnuevo) {
		this.cmdnuevo = cmdnuevo;
	}

	public String getBuscarbod() {
		return buscarbod;
	}

	public void setBuscarbod(String buscarbod) {
		this.buscarbod = buscarbod;
	}

	public HtmlInputText getTxtBuscarbod() {
		return txtBuscarbod;
	}

	public void setTxtBuscarbod(HtmlInputText txtBuscarbod) {
		this.txtBuscarbod = txtBuscarbod;
	}

	public List<Bodega> getListaBodegapopup() {
		return listaBodegapopup;
	}

	public void setListaBodegapopup(List<Bodega> listaBodegapopup) {
		this.listaBodegapopup = listaBodegapopup;
	}

	public HtmlCommandButton getPopup_cmdselecionarBod() {
		return popup_cmdselecionarBod;
	}

	public void setPopup_cmdselecionarBod(
			HtmlCommandButton popup_cmdselecionarBod) {
		this.popup_cmdselecionarBod = popup_cmdselecionarBod;
	}

	public boolean isModalRendered() {
		return modalRendered;
	}

	public void setModalRendered(boolean modalRendered) {
		this.modalRendered = modalRendered;
	}

	public String getNombreEliminar() {
		return nombreEliminar;
	}

	public boolean isSwnuevo() {
		return swnuevo;
	}

	public void setSwnuevo(boolean swnuevo) {
		this.swnuevo = swnuevo;
	}

	public void setNombreEliminar(String nombreEliminar) {
		this.nombreEliminar = nombreEliminar;
	}

	public void popupAccion_CerrarBod(ActionEvent ae) {
		tipopopupbodega = 1;
		modalpopupbodega = !modalpopupbodega;
	}

	public void popupAccion_CerrarBodAutorizadas(ActionEvent ae) {
		tipopopupbodega = 2;
		modalpopupbodega = !modalpopupbodega;
	}

	// ///// Get an Set User_B.jspx Fin

	// ///// Get an Set User_P.jspx Ini

	public void popupAccion_estado(ActionEvent ae) {
		modalpopuptdc = !modalpopuptdc;
	}

	public boolean isSweditando() {
		return sweditando;
	}

	public void setSweditando(boolean sweditando) {
		this.sweditando = sweditando;
	}

	public String getBcodigo() {
		return bcodigo;
	}

	public void setBcodigo(String bcodigo) {
		this.bcodigo = bcodigo;
	}

	public HtmlInputText getTxtbcodigo() {
		return txtbcodigo;
	}

	public void setTxtbcodigo(HtmlInputText txtbcodigo) {
		this.txtbcodigo = txtbcodigo;
	}

	public String getBnombre() {
		return bnombre;
	}

	public void setBnombre(String bnombre) {
		this.bnombre = bnombre;
	}

	public HtmlInputText getTxtnombre() {
		return txtnombre;
	}

	public boolean isSelecfecha_user() {
		return selecfecha_user;
	}

	public void setSelecfecha_user(boolean selecfecha_user) {
		this.selecfecha_user = selecfecha_user;
	}

	public void setTxtnombre(HtmlInputText txtnombre) {
		this.txtnombre = txtnombre;
	}

	public Date getBfechamod() {
		return bfechamod;
	}

	public void setBfechamod(Date bfechamod) {
		this.bfechamod = bfechamod;
	}

	public HtmlInputText getTxtfechamod() {
		return txtfechamod;
	}

	public void setTxtfechamod(HtmlInputText txtfechamod) {
		this.txtfechamod = txtfechamod;
	}

	public Date getBfechana() {
		return bfechana;
	}

	public void setBfechana(Date bfechana) {
		this.bfechana = bfechana;
	}

	public HtmlInputText getTxtfechana() {
		return txtfechana;
	}

	public boolean isModalpopupSerie() {
		return modalpopupSerie;
	}

	public void setModalpopupSerie(boolean modalpopupSerie) {
		this.modalpopupSerie = modalpopupSerie;
	}

	public List<Mngcco> getListseries() {
		return listseries;
	}

	public void setListseries(List<Mngcco> listseries) {
		this.listseries = listseries;
	}

	public HtmlCommandButton getPopup_cmdselecionarSerie() {
		return popup_cmdselecionarSerie;
	}

	public void setPopup_cmdselecionarSerie(
			HtmlCommandButton popup_cmdselecionarSerie) {
		this.popup_cmdselecionarSerie = popup_cmdselecionarSerie;
	}

	public int getNumseries() {
		return numseries;
	}

	public void setNumseries(int numseries) {
		this.numseries = numseries;
	}

	public void setTxtfechana(HtmlInputText txtfechana) {
		this.txtfechana = txtfechana;
	}

	public String getBperfil() {
		return bperfil;
	}

	public boolean isModalRenderedContrasena() {
		return modalRenderedContrasena;
	}

	public void setModalRenderedContrasena(boolean modalRenderedContrasena) {
		this.modalRenderedContrasena = modalRenderedContrasena;
	}

	public boolean isModalRenderedsalir() {
		return modalRenderedsalir;
	}

	public void setModalRenderedsalir(boolean modalRenderedsalir) {
		this.modalRenderedsalir = modalRenderedsalir;
	}

	public void setBperfil(String bperfil) {
		this.bperfil = bperfil;
	}

	public HtmlSelectOneMenu getSelectperfil() {
		return selectperfil;
	}

	public void setSelectperfil(HtmlSelectOneMenu selectperfil) {
		this.selectperfil = selectperfil;
	}

	public HtmlInputText getTxtbodegasal() {
		return txtbodegasal;
	}

	public void setTxtbodegasal(HtmlInputText txtbodegasal) {
		this.txtbodegasal = txtbodegasal;
	}

	public boolean isBactivo() {
		return bactivo;
	}

	public void setBactivo(boolean bactivo) {
		this.bactivo = bactivo;
	}

	public String getBcontrasena() {
		return bcontrasena;
	}

	public void setBcontrasena(String bcontrasena) {
		this.bcontrasena = bcontrasena;
	}

	public HtmlInputText getTxtcontrasena() {
		return txtcontrasena;
	}

	public Dlluser getDlluser_c() {
		return Dlluser_c;
	}

	public void setDlluser_c(Dlluser dlluser_c) {
		Dlluser_c = dlluser_c;
	}

	public void setTxtcontrasena(HtmlInputText txtcontrasena) {
		this.txtcontrasena = txtcontrasena;
	}

	public String getBbodegas_aut() {
		return bbodegas_aut;
	}

	public void setBbodegas_aut(String bbodegas_aut) {
		this.bbodegas_aut = bbodegas_aut;
	}

	public HtmlInputTextarea getTxtbodegas_ent() {
		return txtbodegas_ent;
	}

	public void setTxtbodegas_ent(HtmlInputTextarea txtbodegas_ent) {
		this.txtbodegas_ent = txtbodegas_ent;
	}

	public String getBbodegas_sal() {
		return bbodegas_sal;
	}

	public void setBbodegas_sal(String bbodegas_sal) {
		this.bbodegas_sal = bbodegas_sal;
	}

	public HtmlInputTextarea getTxtbodegas_sal() {
		return txtbodegas_sal;
	}

	public void setTxtbodegas_sal(HtmlInputTextarea txtbodegas_sal) {
		this.txtbodegas_sal = txtbodegas_sal;
	}

	public String getBdoc_autor() {
		return bdoc_autor;
	}

	public void setBdoc_autor(String bdoc_autor) {
		this.bdoc_autor = bdoc_autor;
	}

	public HtmlInputTextarea getTxtdoc_autor() {
		return txtdoc_autor;
	}

	public String getRetornar() {
		return retornar;
	}

	public void setRetornar(String retornar) {
		this.retornar = retornar;
	}

	public Bodega getBodega_c() {
		return Bodega_c;
	}

	public void setBodega_c(Bodega bodega_c) {
		Bodega_c = bodega_c;
	}

	public void setTxtdoc_autor(HtmlInputTextarea txtdoc_autor) {
		this.txtdoc_autor = txtdoc_autor;
	}

	// ///// Get an Set User_P.jspx Fin

	public void rowSelectionListener(RowSelectorEvent event) {
		DlluserWork documento = null;
		DlluserWork[] lista = getDlluserw();
		userselec = true;
		for (int i = 0; i < getDlluserw().length; i++) {
			documento = lista[i];
			if (documento.isSelected()) {
				UserEdicion = documento.getDlluserw();
			}
		}
	}

	public void setlistUser(List<Dlluser> listUsers) {
		this.listUsers = listUsers;
	}

	public List<Dlluser> getlistUsers() {
		return listUsers;
	}

	public void setDlluserw(DlluserWork[] dlluserw) {
		this.dlluserw = dlluserw;
	}

	public DlluserWork[] getDlluserw() {
		Dlluser_logica = new DlluserLogica();
		if (dlluserw == null && listUsers != null) {
			try {
				if (listUsers.size() > 0) {
					dlluserw = Dlluser_logica.findmngDocSelectedRow(listUsers);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return dlluserw;
	}

	public void Activapopupeliminar(ActionEvent ae) {
		if (UserEdicion == null || userselec == false) {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Debe selecionar un Usuario"));
		} else {
			modalRendered = !modalRendered;
		}
	}

	public void action_BuscarBod(ActionEvent ae) {
		listaBodegapopup = null;
		Dlluser_logica = new DlluserLogica();

		try {
			if (busquedacmbbodega.equals("bodnombre")) {
				FacesContext.getCurrentInstance().addMessage(
						"msgbod",
						new FacesMessage(MessageBundleLoader
								.getMessage("busqueda.mensaje")
								+ " nombre :" + buscarbod));
				listaBodegapopup = Dlluser_logica.consultarBodegaLike(
						"bodnombre", buscarbod.toUpperCase());

			} else {
				if (busquedacmbbodega.equals("bodcodigo")) {
					FacesContext.getCurrentInstance().addMessage(
							"msgbod",
							new FacesMessage(MessageBundleLoader
									.getMessage("busqueda.mensaje")
									+ " Codigo :" + buscarbod));
					listaBodegapopup = Dlluser_logica.consultarBodegaLike(
							"bodnombre", buscarbod.toUpperCase());
				} else {

					if (busquedacmbbodega.equals("todos")) {
						FacesContext.getCurrentInstance().addMessage(
								"msgbod",
								new FacesMessage(MessageBundleLoader
										.getMessage("busqueda.mensaje")
										+ " Todos :" + buscarbod));

						listaBodegapopup = Dlluser_logica.buscarBodegas_Aut();
					}

				}
			}
		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	public void validaId(ActionEvent ae) {
		try {
			Dlluser_c = new Dlluser();
			Dlluser_c = Dlluser_logica.consulta_User(bcodigo);
			if (Dlluser_c != null) {
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Esta Codigo De Usuario ya existe"));
				bcodigo = "";
			} else {
				txtnombre.requestFocus();
			}
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	}

	public void action_Validabodega(ActionEvent ae) throws Exception {

		miBodegas = null;
		Dlluser_logica = new DlluserLogica();
		bbodegas = bbodegas.toUpperCase();
		miBodegas = Dlluser_logica.consultarBodega(bbodegas);
		if (miBodegas == null) {
			miBodegas = null;
			bbodegasnom = "";
			FacesContext.getCurrentInstance().addMessage(
					"msg",
					new FacesMessage("Bodega " + bbodegas
							+ " no existe o no se encuentra autorizada"));
			bbodegas = "";
		} else {
			bbodegasnom = miBodegas.getBodnombre();
		}

	}

	public void action_selecfecha(ValueChangeEvent ae) {
		selecfecha = true;
	}

	public void action_selecfecha_user(ValueChangeEvent ae) {
		selecfecha_user = true;
	}

	public void action_selecBusqueda(ValueChangeEvent vcex) {

		if (vcex.getNewValue() != null) {

			busquedacmbbus = vcex.getNewValue().toString();

			if (busquedacmbbus.equals("usrcodigo")
					|| busquedacmbbus.equals("usrnombre")) {
				busqueda1 = true;
				busqueda2 = false;
				busqueda3 = false;
				busqueda4 = false;
			} else {
				if (busquedacmbbus.equals("usrperfil")) {
					busqueda1 = false;
					busqueda2 = true;
					busqueda3 = false;
					busqueda4 = false;
					Date today = new Date();
					fechabusca = today;
				} else {

					if (busquedacmbbus.equals("usrprebod")) {
						busqueda1 = false;
						busqueda2 = false;
						busqueda3 = false;
						busqueda4 = true;
					} else {
						busqueda1 = false;
						busqueda2 = false;
						busqueda3 = false;
						busqueda4 = false;
					}

				}
			}
		}
	}

	public void action_Buscar(ActionEvent ae) {
		String filtro = "";
		if (buscarperfil.equals("TODOS")) {
			filtro = "";
		} else {
			filtro = "and model.usrperfil = '" + buscarperfil.toString() + "' ";
		}

		Dlluser_logica = new DlluserLogica();
		userselec = false;
		try {
			if (busquedacmbbus.equals("usrcodigo")) {
				if (buscar.length() > 0) {
					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(MessageBundleLoader
									.getMessage("busqueda.mensaje")
									+ " por codigo :" + buscar));
					listUsers = new ArrayList<Dlluser>();
					listUsers = Dlluser_logica.consultarUserProperty(
							"usrcodigo", buscar, filtro);
					listUsers = getlistUsers();
					dlluserw = null;
				} else {
					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(
									"Debe Agregar un valor de busqueda"));
				}

			} else {
				if (busquedacmbbus.equals("usrfeccamb")) {

					SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yy");
					SimpleDateFormat formatomsg = new SimpleDateFormat(
							"dd/MM/yyyy");
					long fecha = fechabusca.getTime();
					long aumento = fecha;
					if (selecfecha == true) {
						aumento = fecha + 86400000;
					}

					Date fechaMax = new Date(aumento);
					String cadenaFecha = formato.format(fechaMax);
					String cadenaFechamsg = formatomsg.format(fechaMax);

					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(MessageBundleLoader
									.getMessage("busqueda.mensaje")
									+ "  Fecha :" + cadenaFechamsg));

					listUsers = new ArrayList<Dlluser>();
					listUsers = Dlluser_logica.consultarUserProperty(
							"usrfeccamb", cadenaFecha, filtro);
					listUsers = getlistUsers();
					dlluserw = null;

				} else {
					if (busquedacmbbus.equals("usrnombre")) {
						FacesContext.getCurrentInstance().addMessage(
								"msg",
								new FacesMessage(MessageBundleLoader
										.getMessage("busqueda.mensaje")
										+ " nombre "));
						listUsers = new ArrayList<Dlluser>();
						listUsers = Dlluser_logica.consultarUserProperty(
								"usrnombre", buscar, filtro);
						listUsers = getlistUsers();
						dlluserw = null;

					} else {

						if (busquedacmbbus.equals("usrprebod")) {
							if (bbodegas.length() > 0) {
								FacesContext.getCurrentInstance().addMessage(
										"msg",
										new FacesMessage(MessageBundleLoader
												.getMessage("busqueda.mensaje")
												+ " bodega predeterminada :"
												+ bbodegas));

								listUsers = new ArrayList<Dlluser>();
								listUsers = Dlluser_logica
										.consultarUserProperty(
												"bodega.bodcodigo", bbodegas,
												filtro);
								listUsers = getlistUsers();
								dlluserw = null;
							} else {
								FacesContext
										.getCurrentInstance()
										.addMessage(
												"msg",
												new FacesMessage(
														"Debe Agregar un valor de busqueda"));
							}

						} else {
							if (busquedacmbbus.equals("usrperfil")) {
								if (buscarperfil.equals("TODOS")) {
									FacesContext
											.getCurrentInstance()
											.addMessage(
													"msg",
													new FacesMessage(
															MessageBundleLoader
																	.getMessage("busqueda.mensaje")
																	+ " todos perfiles."));
									dlluserw = null;
									listUsers = new ArrayList<Dlluser>();
									listUsers = Dlluser_logica
											.buscarTodosUsers();
									// listUsers = getlistUsers();

								} else {
									FacesContext
											.getCurrentInstance()
											.addMessage(
													"msg",
													new FacesMessage(
															MessageBundleLoader
																	.getMessage("busqueda.mensaje")
																	+ " Perfil :"
																	+ buscarperfil
																			.toString()));

									listUsers = new ArrayList<Dlluser>();
									listUsers = Dlluser_logica
											.consultarUserProperty("usrperfil",
													buscarperfil.toString(), "");
									listUsers = getlistUsers();
									dlluserw = null;
								}

							} else {
								FacesContext.getCurrentInstance().addMessage(
										"msg",
										new FacesMessage(MessageBundleLoader
												.getMessage("busqueda.mensaje")
												+ " todos usuarios."));
								dlluserw = null;
								listUsers = new ArrayList<Dlluser>();
								listUsers = Dlluser_logica.buscarTodosUsers();
								// listUsers = getlistUsers();
							}
						}
					}
				}
			}
		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	public void popupAccion_SelecionarBod(ActionEvent ae) throws Exception {
		if (tipopopupbodega == 1) {
			bbodegas = popup_cmdselecionarBod.getValue().toString();
			action_Validabodega(ae);
		} else {
			if (tipopopupbodega == 2) {
				if (bbodegas_aut == null) {
					bbodegas_aut = "";
				}
				bbodegas_aut = bbodegas_aut
						+ popup_cmdselecionarBod.getValue().toString() + ",";

			}
		}

		modalpopupbodega = !modalpopupbodega;

	}

	public void action_confirmacionEliminar(ActionEvent ae) {
		if (UserEdicion != null || userselec != false) {
			if (dlluserw != null) {
				if (dlluserw != null) {
					Dlluser_logica = new DlluserLogica();
					try {
						setNombreEliminar("Usuario Codigo :"
								+ UserEdicion.getUsrcodigo().toString()
								+ " Nombre :"
								+ UserEdicion.getUsrnombre().toString());
					} catch (Exception e) {
						e.printStackTrace();
					}
					Activapopupeliminar(ae);
				} else {
					FacesContext.getCurrentInstance().addMessage("msg",
							new FacesMessage("Debe seleccionar un Usuario"));
				}
			} else {
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Debe seleccionar un Usuario"));
			}
		} else {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Debe seleccionar un Usuario"));
		}
	}

	public void action_EliminarTabla(ActionEvent ae) {
		Dlluser_logica = new DlluserLogica();

		if (UserEdicion != null || userselec != false) {
			Activapopupeliminar(ae);
			try {

				Dlluser_logica.Eliminar_User(UserEdicion);

				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage("Se actualizo Satisfactoriamente"));

				listUsers = new ArrayList<Dlluser>();
				action_Buscar(ae);
				listUsers = getlistUsers();
				userselec = false;
				dlluserw = null;

			} catch (Exception e) {
				e.printStackTrace();
				FacesContext.getCurrentInstance().addMessage("msg",
						new FacesMessage(e.getMessage()));
			}
		}
	}

	public String action_Nuevo() {
		swnuevo = true;
		sweditando = false;
		bbodegas_aut = null;
		bdoc_autor = null;
		bbodegas_sal = null;
		bcontrasena = null;
		bactivo = true;
		bbodegas = null;
		bbodegasnom = null;
		bperfil = null;
		Date today = new Date();
		bfechana = today;
		bfechamod = today;
		bnombre = null;
		bcodigo = null;

		return "User_P";
	}

	public String action_Editar() {

		Dlluser_logica = new DlluserLogica();
		Dlluser_c = new Dlluser();
		retornar = ".";

		if (UserEdicion == null || userselec == false) {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Debe selecionar un Usuario"));
		} else {

			swnuevo = false;
			sweditando = true;

			try {
				setDlluser_c(Dlluser_logica.consulta_User(UserEdicion
						.getUsrcodigo().toString()));
				bbodegas_aut = Dlluser_c.getUsrbodaut();
				bdoc_autor = Dlluser_c.getUsrtdcaut();
				bcontrasena = Dlluser_c.getUsrpasswd();
				bbodegas = Dlluser_c.getBodega().getBodcodigo();
				bbodegasnom = Dlluser_c.getBodega().getBodnombre();

				if (Dlluser_c.getUsractivo().longValue() == Long.valueOf(1)) {
					bactivo = true;
				} else {
					bactivo = false;
				}

				bperfil = Dlluser_c.getUsrperfil();
				bfechana = Dlluser_c.getUsrfecnace();
				bfechamod = Dlluser_c.getUsrfeccamb();
				bnombre = Dlluser_c.getUsrnombre();
				bcodigo = Dlluser_c.getUsrcodigo();
				retornar = "User_P";

			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return retornar;
	}

	public String action_GuardarUser() {
		try {

			action_Validabodega(null);
			Dlluser_c = null;
			if (swnuevo == true) {
				Dlluser_c = new Dlluser();
				Dlluser_c = Dlluser_logica.consulta_User(bcodigo);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		retornar = "Inicio";
		Dlluser_logica = new DlluserLogica();
		long bactivon = 0;
		if (Dlluser_c != null) {
			FacesContext.getCurrentInstance().addMessage("msg",
					new FacesMessage("Esta Codigo De Usuario ya existe"));
		} else {
			if (bbodegas_aut == "" || bdoc_autor == null || bdoc_autor == ""
					|| bbodegas_aut == null) {
				FacesContext
						.getCurrentInstance()
						.addMessage(
								"msg",
								new FacesMessage(
										"Verifique, Debe agregar bodegas o Documentos autorizados"));
				this.txtbcodigo.requestFocus();
			} else {
				if (bcodigo == "" || bcodigo == null) {
					FacesContext.getCurrentInstance().addMessage(
							"msg",
							new FacesMessage(
									"Debe Agregar el codigo del usuario"));
					this.txtbcodigo.requestFocus();
				} else {

					if (bbodegasnom == "" || bbodegasnom == null) {
						FacesContext.getCurrentInstance().addMessage(
								"msg",
								new FacesMessage(
										"Debe Agregar una bodega existente"));
						this.txtbodegasal.requestFocus();
					} else {

						if (bactivo == true) {
							bactivon = 1;
						} else {
							bactivon = 0;
						}

						Dlluser_c = new Dlluser();
						Bodega_c = new Bodega();
						Dlluser_c.setUsrcodigo(bcodigo.toUpperCase());
						Dlluser_c.setUsrnombre(bnombre.toUpperCase());
						Dlluser_c.setUsrfeccamb(bfechamod);
						Dlluser_c.setUsrfecnace(bfechana);
						Dlluser_c.setUsrperfil(bperfil);
						Bodega_c.setBodcodigo(bbodegas.toUpperCase());
						Dlluser_c.setBodega(Bodega_c);
						Dlluser_c.setUsractivo(bactivon);
						Dlluser_c.setUsrperfil(bperfil);
						Dlluser_c.setUsrbodaut(bbodegas_aut);
						Dlluser_c.setUsrtdcaut(bdoc_autor);
						
						if(swnuevo == true){
							Dlluser_c.setUsrlogfec(new Timestamp(Calendar.getInstance()
									.getTimeInMillis()));
						}
						
						menu_ppal_MB obje = (menu_ppal_MB)FacesUtils.getManagedBean("menu_ppal_MB");
						Dlluser_c.setDlluser(obje.getMiDlluser());
						
						try {
							Dlluser_logica.grabar_User(Dlluser_c);
							swnuevo = false;
							sweditando = false;
							listUsers = new ArrayList<Dlluser>();
							listUsers.add(Dlluser_c);
							dlluserw = null;
							// UserEdicion = null;

						} catch (Exception e) {
							e.printStackTrace();
						}

						FacesContext.getCurrentInstance().addMessage(
								"msg",
								new FacesMessage(
										"Se actualizo Satisfactoriamente"));

						retornar = "User_B";
					}
				}
			}
		}
		return retornar;
	}

	public String action_confirmacionSalir() {
		return "User_B";
	}

	public void accionPopup_contrasena() {
	}

	public String action_GuardarContrasena() {
		return ".";
	}

	public String action_Cancelar() {
		return ".";
	}

	public void action_toggleModalContrasena() {
	}

	public void action_toggleModalsalir() {

	}

	public void action_BuscarTdc(ActionEvent ae) {
		listatdcpopup = null;
		Mngtdc_logica = new MngtdcLogica();

		try {
			if (busquedacmbtdc.equals("tdcnombre")) {
				FacesContext.getCurrentInstance().addMessage(
						"msgtdc",
						new FacesMessage(MessageBundleLoader
								.getMessage("busqueda.mensaje")
								+ " nombre :" + buscarbod));
				listatdcpopup = Mngtdc_logica
						.findByPropertyActivoLista(" AND model.tdcnombre LIKE '%"
								+ buscartdc.toUpperCase() + "%' ");

			} else {
				if (busquedacmbtdc.equals("tdctipo")) {
					FacesContext.getCurrentInstance().addMessage(
							"msgtdc",
							new FacesMessage(MessageBundleLoader
									.getMessage("busqueda.mensaje")
									+ " Tipo :" + buscartdc));
					listatdcpopup = Mngtdc_logica
							.findByPropertyActivoLista(" AND model.id.tdctipo LIKE '%"
									+ buscartdc.toUpperCase() + "%' ");
				} else {

					if (busquedacmbtdc.equals("todos")) {
						FacesContext.getCurrentInstance().addMessage(
								"msgtdc",
								new FacesMessage(MessageBundleLoader
										.getMessage("busqueda.mensaje")
										+ " Todos."));
						listatdcpopup = Mngtdc_logica
								.findByPropertyActivoLista(" ");
					}

				}
			}
		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	public void popupAccion_Selecionartdc(ActionEvent ae) throws Exception {
		if (bdoc_autor == null) {
			bdoc_autor = "";
		}

		bdoc_autor = bdoc_autor + popup_cmdselecionartdc.getValue().toString()
				+ ",";
		modalpopuptdc = !modalpopuptdc;

	}

	public void popupAccion_EliminarSerie(ActionEvent ae) throws Exception {
		String Regserial = popup_cmdselecionarSerie.getValue().toString();

		if (listseries.size() > 0) {
			int reg = listseries.size();
			numseries = reg;
			for (int i = 0; i < reg; i++) {
				if (listseries.get(i).getCconombre().equals(Regserial)) {
					listseries.remove(i);
					i = reg;
				}
				reg = listseries.size();
				numseries = reg;

			}
		}

	}

	public void popupAccion_EstadoSerie(ActionEvent ae) {
		modalpopupSerie = !modalpopupSerie;
	}

	public void popupAccion_EstadoSerieBod(ActionEvent ae) {
		modalpopupSerie = !modalpopupSerie;

		if (bbodegas_aut != null && bbodegas_aut != "") {
			ModSerie = "Bod";
			listseries.clear();
			String[] Bod = null;
			Bod = bbodegas_aut.split(",");
			for (int i = 0; i < Bod.length; i++) {

				MiMngmcnsn = new Mngcco();
				MiMngmcnsn.setCcocodigo(Bod[i]);
				MiMngmcnsn.setCconombre(Bod[i]);
				MiMngmcnsn.setCcoactivo(new Long("1"));
				listseries.add(MiMngmcnsn);

				int reg = listseries.size();
				numseries = reg;

			}
		}
	}

	public void popupAccion_EstadoSerieDoc(ActionEvent ae) {
		modalpopupSerie = !modalpopupSerie;
		if (bdoc_autor != null && bdoc_autor != "") {

			ModSerie = "Doc";
			listseries.clear();
			String[] Bod = null;
			Bod = bdoc_autor.split(",");
			for (int i = 0; i < Bod.length; i++) {

				MiMngmcnsn = new Mngcco();
				MiMngmcnsn.setCcocodigo(Bod[i]);
				MiMngmcnsn.setCconombre(Bod[i]);
				MiMngmcnsn.setCcoactivo(new Long("1"));
				listseries.add(MiMngmcnsn);

				int reg = listseries.size();
				numseries = reg;

			}
		}
	}

	public void action_Guardar_Registros(ActionEvent ae) {
		modalpopupSerie = !modalpopupSerie;
		if (ModSerie == "Doc") {
			bdoc_autor = "";
			if (listseries.size() > 0) {
				int reg = listseries.size();
				for (int i = 0; i < reg; i++) {
					if (listseries.get(i).getCconombre().equals(null)) {
					} else {
						bdoc_autor = bdoc_autor
								+ listseries.get(i).getCconombre() + ",";
					}
				}
			}

		}
		if (ModSerie == "Bod") {
			bbodegas_aut = "";
			if (listseries.size() > 0) {
				int reg = listseries.size();
				for (int i = 0; i < reg; i++) {
					if (listseries.get(i).getCconombre().equals(null)) {
					} else {
						bbodegas_aut = bbodegas_aut
								+ listseries.get(i).getCconombre() + ",";
					}
				}
			}
		}

		ModSerie = "";
	}

	public void imprimirListado(ActionEvent ae) {

		Dlluser_logica = new DlluserLogica();

		String path = FacesUtils.getServletContext().getRealPath("");
		try {
			rutaArchivo = Dlluser_logica.impresionListado(path, listUsers);
			SessionUtil.add(SessionVars.ARCHIVOKARDEX, rutaArchivo);
			JavascriptContext.addJavascriptCall(FacesContext
					.getCurrentInstance(), javaScriptCode);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public String getRutaArchivo() {
		return rutaArchivo;
	}

	public void setRutaArchivo(String rutaArchivo) {
		this.rutaArchivo = rutaArchivo;
	}
}
